/*
    gtest库中断言宏的使用
    1. 断言宏主要有两个系列
        ASSERT_*: 断言成功则继续执行，失败则中断程序
        EXPECT_*: 断言成功则继续执行，失败则继续执行
    注意：断言宏需要在单元测试宏函数中使用
*/
#include <iostream>
#include "gtest/gtest.h"

// 单元测试宏函数
// compare: 表示测试套件名称(测试案例名称), 使用同一测试套件的多个单元测试会共享相同的全局设置和清理操作
// great: 表示具体测试的名称, 这是该测试套件内单个测试的具体标识符
TEST(compare, assert_great)
{
    int age = 18;
    ASSERT_GE(age, 10);
    std::cout << "end" << std::endl;
}

TEST(compare, expect_great)
{
    int age = 18;
    EXPECT_GE(age, 30);
    std::cout << "end" << std::endl;
}

TEST(compare, assert_less)
{
    int age = 18;
    ASSERT_LT(age, 10);
    std::cout << "end" << std::endl;
}

int main(int argc, char* argv[])
{
    testing::InitGoogleTest(&argc, argv);

    // 0表示所有测试用例都通过, 非0表示有测试失败
    if(RUN_ALL_TESTS())
        std::cout << "some test failed" << std::endl;
    else
        std::cout << "all test passed" << std::endl;
    return 0;
}